using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Web.UI;
using BusinessRules;
using Common;
using DataAccess;
using DevExpress.Web.ASPxGridView;
public partial class ContratosOtroSiListado : Page
{
    #region - Propiedades

    public string StrAccId
    {
        get
        {
            if (ViewState["strAccId"] != null)
                return ViewState["strAccId"].ToString();
            return "";
        }
        set { ViewState["strAccId"] = value; }
    }


    public string StrCitId
    {
        get
        {
            if (ViewState["StrCitId"] != null)
                return ViewState["StrCitId"].ToString();
            return "";
        }
        set { ViewState["StrCitId"] = value; }
    }

    public string StrCitIdHijo
    {
        get
        {
            if (ViewState["StrCitIdHijo"] != null)
                return ViewState["StrCitIdHijo"].ToString();
            return "";
        }
        set { ViewState["StrCitIdHijo"] = value; }
    }

    public string StrPlnId
    {
        get
        {
            if (ViewState["strPlnId"] != null)
                return ViewState["strPlnId"].ToString();
            return "";
        }
        set { ViewState["strPlnId"] = value; }
    }


    private DataTable ConContratosDataTable
    {

        get
        {

            DataTable objTable = null;
            if (Cache[ContratacionData.CON_CONTRATACION_TABLE + Session.SessionID] != null)
                objTable = (DataTable)Cache[ContratacionData.CON_CONTRATACION_TABLE + Session.SessionID];
            return objTable;
        }

        set
        {
            if (value != null)
            {
                Cache.Insert(ContratacionData.CON_CONTRATACION_TABLE + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }

    #endregion

    #region - PageLoad

    protected void Page_Load(object sender, EventArgs e)
    {
        WccAcciones1.AddEnabledDuringCallBack = false;
        WccAcciones1.AddTextDuringCallBack = "Guardando... Por favor esperar!!!";
        WccAcciones1.UpdateEnabledDuringCallBack = false;
        WccAcciones1.UpdateTextDuringCallBack = "Guardando... Por favor espere!!!";

        lblMensaje.Visible = false;
        traerContextItems();

        if (!IsPostBack)
        {
            BindDatos();
        }
        else
        {
            if (ConContratosDataTable != null)
            {
                gidvContratos.DataSource = ConContratosDataTable;
                gidvContratos.DataBind();
            }
        }

        //if (!IsPostBack && !IsCallback)
        //{
        //    gidvContratos.StartEdit(0);
        //}

    }

    #endregion

    #region - BindDatos

    private void BindDatos()
    {

        BusinessRules.Contratos objContratos = new BusinessRules.Contratos(ConfigurationManager.AppSettings["Conn"]);
        ContratacionData objContratosData = objContratos.ConsultarContratosOtroSI(StrCitId);
        ConContratosDataTable = objContratosData;
        gidvContratos.DataSource = objContratosData.DefaultView;
        gidvContratos.DataBind();
       
    }

    #endregion

    #region - contextItems

    private void traerContextItems()
    {
        if (Context.Items["accId"] != null)
            StrAccId = Convert.ToString(Context.Items["accId"]);
        if (Context.Items["plnId"] != null)
            StrPlnId = Convert.ToString(Context.Items["plnId"]);
        if (Context.Items["StrCitId"] != null)
            StrCitId = Convert.ToString(Context.Items["StrCitId"]);
        if (Context.Items["StrCitIdHijo"] != null)
            StrCitIdHijo = Convert.ToString(Context.Items["StrCitIdHijo"]);
        
    }
    
    #endregion

    #region - ContextItems

    private void crearContextItems()
    {
        Context.Items["accId"] = StrAccId;
        Context.Items["plnId"] = StrPlnId;
        Context.Items["StrCitId"] = StrCitId;
        Context.Items["StrCitIdHijo"] = StrCitIdHijo;

    }



    #endregion

    #region - aspxgidvContratos_RowCommand

    protected void aspxgidvContratos_RowCommand(object sender, ASPxGridViewRowCommandEventArgs e)
    {
        //Response.Write("<script language=javascript>window.open('ContratosDetalle.aspx?AccId=" + StrAccId + "','nueva_ventana','width=800,height=600,scrollbars=1');</script>");
        if (e.KeyValue.ToString() != "")
        {
            if (e.CommandArgs.CommandName == "cmdVerDetalle")
            {
                if (StrAccId != "")
                {
                    cargarCamposDetalle(e.KeyValue.ToString());
                }

                PopupPanel1.Show();

            }
        }
    }

    #endregion

    #region - cargarCamposDetalle

    private void cargarCamposDetalle(string strConID)
    {
        if (strConID != "")
        {
            try
            {

                BusinessRules.Contratos objSigPlanAccion =
                    new BusinessRules.Contratos(ConfigurationManager.AppSettings["Conn"]);
                ContratosData objContratosData = objSigPlanAccion.ConsultarContratosDetalleConID(Convert.ToDecimal(strConID));
                if (objContratosData != null)
                {
                    //---------------------
                    //Cargar datos Contratos -
                    //---------------------
                    DataRow filaContratos = objContratosData.Rows[0];

                    lblCON_NUMERO_CONTRATO.Text = filaContratos[ContratosData.CON_NUMERO_CONTRATO_FIELD].ToString();
                    lblCON_NOMBRE_CONTRATISTA.Text =
                        filaContratos[ContratosData.CON_NOMBRE_CONTRATISTA_FIELD].ToString();
                    lblCON_IDENTIFICACION_CONTRATISTA.Text =
                        filaContratos[ContratosData.CON_IDENTIFICACION_CONTRATISTA_FIELD].ToString();
                    lblCON_DIRECCION.Text = filaContratos[ContratosData.CON_DIRECCION_FIELD].ToString();
                    lblCON_ID_NATURALEZA_JURIDICA.Text =
                        filaContratos[ContratosData.CON_ID_NATURALEZA_JURIDICA_FIELD].ToString();
                    lblCON_OBLIGACIONES_CONTRATISTA.Text =
                        filaContratos[ContratosData.CON_OBLIGACIONES_CONTRATISTA_FIELD].ToString();
                    lblCON_FECHA_SUSCRIPCION.Text = filaContratos[ContratosData.CON_FECHA_SUSCRIPCION_FIELD].ToString();
                    lblCON_FECHA_INICIO.Text = filaContratos[ContratosData.CON_FECHA_INICIO_FIELD].ToString();
                    lblCON_FECHA_TERMINACION.Text = filaContratos[ContratosData.CON_FECHA_TERMINACION_FIELD].ToString();
                    lblCON_TIEMPO_PRORROGA.Text = filaContratos[ContratosData.CON_TIEMPO_PRORROGA_FIELD].ToString();
                    lblCON_NOMBRE_INTERVENTOR.Text =
                        filaContratos[ContratosData.CON_NOMBRE_INTERVENTOR_FIELD].ToString();
                    lblCON_NUMERO_IDENTIFICACION.Text =
                        filaContratos[ContratosData.CON_NUMERO_IDENTIFICACION_FIELD].ToString();
                    lblCON_TIPO_INTERVENTORIA.Text =
                        filaContratos[ContratosData.CON_TIPO_INTERVENTORIA_FIELD].ToString();
                    lblCON_NIVEL_EXTENSION_RIESGOS.Text =
                        filaContratos[ContratosData.CON_NIVEL_EXTENSION_RIESGOS_FIELD].ToString();
                    lblCON_NORMATIVIDAD.Text = filaContratos[ContratosData.CON_NORMATIVIDAD_FIELD].ToString();
                    lblCON_ESTUDIO_MERCADO.Text = filaContratos[ContratosData.CON_ESTUDIO_MERCADO_FIELD].ToString();
                    lblCON_JUSTIFICACION_SELECCION.Text =
                        filaContratos[ContratosData.CON_JUSTIFICACION_SELECCION_FIELD].ToString();
                    lblCON_FORMA_PAGO.Text = filaContratos[ContratosData.CON_FORMA_PAGO_FIELD].ToString();
                    lblCON_ANALISIS_GARANTIAS.Text =
                        filaContratos[ContratosData.CON_ANALISIS_GARANTIAS_FIELD].ToString();
                }

            }
            catch (Exception ex)
            {
                lblMensaje.Visible = true;
                lblMensaje.CssClass = "error";
                //lblMensaje.Text = Utilidad.TraerMensaje("gmsgErrorGeneral");
                lblMensaje.Text = Utilidad.TraerMensaje("gmsgErrorGeneral") + ex;
            }
        }

    }

    #endregion

    #region - btnRegresar_Click

    protected void btnRegresar_Click(object sender, ImageClickEventArgs e)
    {
        crearContextItems();
        Server.Transfer("Contratos.aspx?SSM_ID=21", true);
    }

    #endregion

    #region - lnkAccionesMetas_Click

    protected void lnkAccionesMetas_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("SigAccionMetas.aspx?SSM_ID=13", true);
    }

    #endregion

    #region - btnCerrar_Click

    protected void btnCerrar_Click(object sender, ImageClickEventArgs e)
    {
        PopupPanel1.Hide();
        LimpiarcargarDetalle();
    }

    #endregion

    #region - LimpiarcargarDetalle

    private void LimpiarcargarDetalle()
    {
        lblCON_NUMERO_CONTRATO.Text = "";
        lblCON_NOMBRE_CONTRATISTA.Text =
            lblCON_IDENTIFICACION_CONTRATISTA.Text = "";
        lblCON_DIRECCION.Text = "";
        lblCON_ID_NATURALEZA_JURIDICA.Text = "";
        lblCON_OBLIGACIONES_CONTRATISTA.Text = "";
        lblCON_FECHA_SUSCRIPCION.Text = "";
        lblCON_FECHA_INICIO.Text = "";
        lblCON_FECHA_TERMINACION.Text = "";
        lblCON_TIEMPO_PRORROGA.Text = "";
        lblCON_NOMBRE_INTERVENTOR.Text = "";
        lblCON_NUMERO_IDENTIFICACION.Text = "";
        lblCON_TIPO_INTERVENTORIA.Text =
            lblCON_NIVEL_EXTENSION_RIESGOS.Text =
            lblCON_NORMATIVIDAD.Text = "";
        lblCON_ESTUDIO_MERCADO.Text = "";
        lblCON_JUSTIFICACION_SELECCION.Text =
            lblCON_FORMA_PAGO.Text = "";
        lblCON_ANALISIS_GARANTIAS.Text = "";

    }

    #endregion

    #region - LinkEpes_Click

    protected void LinkEpes_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("AccionEpe.aspx?SSM_ID=13", true);
    }

    #endregion

    #region WccAcciones1_Add_OnClick
    protected void WccAcciones1_Add_OnClick(object sender, ImageClickEventArgs e)
    {
        StrCitIdHijo = "";
        crearContextItems();
        Server.Transfer("ContratosOtroSi.aspx?SSM_ID=21", true);
    }
    #endregion

    #region WccAcciones1_Delete_OnClick
    protected void WccAcciones1_Delete_OnClick(object sender, ImageClickEventArgs e)
    {
        List<object> keyValues = gidvContratos.GetSelectedFieldValues("CTT_ID");
        try
        {
            foreach (object key in keyValues)
            {
                BusinessRules.Contratacion objBR = new BusinessRules.Contratacion(ConfigurationManager.AppSettings["Conn"]);
                objBR.EliminarContratos(Convert.ToDecimal(key.ToString()));
                BindDatos();
                lblMensaje.Visible = true;
                Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, Utilidad.TraerMensaje("gmsgEliminarRegistrosExitoso"), lblMensaje);
            }
            BindDatos();
            gidvContratos.Selection.UnselectAll();
            
        }

        catch (Exception ex)
        {
            //throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", this.GetType().FullName), ex);
            lblMensaje.Text = ex.Message;
        }
    }
    #endregion

    #region WccAcciones1_Update_OnClick
    protected void WccAcciones1_Update_OnClick(object sender, ImageClickEventArgs e)
    {
        List<object> keyValues = gidvContratos.GetSelectedFieldValues("CTT_ID");

        try
        {
            foreach (object key in keyValues)
            {

                StrCitIdHijo = key.ToString();
            }
            crearContextItems();
            Server.Transfer("ContratosOtroSi.aspx?SSM_ID=21", true);
        }
        catch (Exception ex)
        {
            //throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", this.GetType().FullName), ex);
            lblMensaje.Text = ex.Message;
        }
    }
    #endregion

    protected void btnXlsExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteXlsToResponse();
    }
    protected void btnRtfExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteRtfToResponse();
    }
    protected void btnCsvExport_Click(object sender, EventArgs e)
    {
        gridExport.WriteCsvToResponse();
    }
}
